//
//  NetWorkManager.h
//  CToolBox
//
//  Created by SC on 16/12/13.
//  Copyright © 2016年 SC. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "NetWorkDefine.h"
#import "AFHTTPSessionManager.h"
#import "AFNetworking.h"
#import "NetWorkSession.h"

//static NSString * const BaseUrl = @"https://api.yjsale.com/api/";

@interface NetWorkManager : NSObject

/**
 *  实例化
 *
 *  @return 实例化
 */
+ (NetWorkManager *)sharedInstanceMethod;

/**
 *  网络请求的实例方法--get
 *
 *  @param url          请求的地址
 *  @param params       请求的参数
 *  @param tag          标示
 *  @param successBlock 请求成功的回调
 *  @param failureBlock 请求失败的回调
 */

+ (NSURLSessionDataTask *)getWithUrl:(NSString *) url
            params:(id) params
               tag:(id)tag
        successBlock:(requestSuccess) successBlock
        failureBlock:(requestFailure) failureBlock;

/**
 *  网络请求的实例方法--post
 *
 *  @param url    请求的地址
 *  @param params    请求的参数
 *  @param tag          标示
 *  @param successBlock 请求成功的回调
 *  @param failureBlock 请求失败的回调
 */
+ (NSURLSessionDataTask *)postWithUrl:(NSString *) url
             params:(id) params
                tag:(id)tag
     successBlock:(requestSuccess) successBlock
     failureBlock:(requestFailure) failureBlock;

/**
 *  网络请求的实例方法--post上传JOSN
 *
 *  @param url    请求的地址
 *  @param params    请求的参数
 *  @param tag          标示
 *  @param successBlock 请求成功的回调
 *  @param failureBlock 请求失败的回调
 */
+ (NSURLSessionDataTask *)postUploadJOSNWithUrl:(NSString *) url
                               params:(id) params
                                  tag:(id)tag
                         successBlock:(requestSuccess) successBlock
                         failureBlock:(requestFailure) failureBlock;

/**
 *  上传图片
 *
 *  @param host      请求的地址
 *  @param parames   请求的参数
 *  @param imageData 图片二进制
 *  @param name      图片参数名
 *  @param fileName  文件名
 *  @param complete  请求成功的回调
 *  @param failure   请求失败的回调
 */
+ (void)uploadImageWithHost:(NSString *)host
                    parames:(NSDictionary *)parames
                  imageData:(NSData *)imageData
                       name:(NSString *)name
                   fileName:(NSString *)fileName
                   complete:(void(^)(NSString* url))complete
                    failure:(void(^)(NSError *error))failure;

/**
 *  上传文件
 *
 *  @param host      请求的地址
 *  @param parames   请求的参数
 *  @param fileData  文件二进制
 *  @param name      文件参数名
 *  @param fileName  文件名
 *  @param fileType  文件类型
 *  @param complete  请求成功的回调
 *  @param failure   请求失败的回调
 */
+ (void)uploadFileWithHost:(NSString *)host
                    parames:(NSDictionary *)parames
                  fileData:(NSData *)fileData
                       name:(NSString *)name
                   fileName:(NSString *)fileName
                  fileType:(NSString *)fileType
                   complete:(void(^)(NSString* url))complete
                    failure:(void(^)(NSError *error))failure;


+(NSURLSessionTask *)downloadWithManager:(NSString *)url
                              pathString:(NSString *)pathString
                            successBlock:(downloadSuccess)successBlock
                           progressBlock:(downloadProgress) progressBlock;

/**
 *  取消全部网络请求
 */
+ (void)cancelAll;


@end
